package cifreromane;

public class Context {
    private int val_final;
    private int ultim_parcurs;
    private int suma_ultim;

    public int getSuma_ultim() {
        return suma_ultim;
    }

    public void setSuma_ultim(int suma_ultim) {
        this.suma_ultim = suma_ultim;
    }

    public int getUltim_parcurs() {
        return ultim_parcurs;
    }
    
    public void setUltim_parcurs(int ultim_parcurs) {
        this.ultim_parcurs = ultim_parcurs;
    }

    public int getVal_final() {
        return val_final;
    }

    public void setVal_final(int val_final) {
        this.val_final = val_final;
    }
           
    Context(){ 
        this.suma_ultim=0;
        this.ultim_parcurs=0;
        this.val_final=0;
    }        
    
    public int returneazaFinal(){
        return val_final+suma_ultim;
    }
    
    public void actualizare(int valoare_noua){
        if(valoare_noua < ultim_parcurs) {
           val_final = val_final + suma_ultim;
           suma_ultim = valoare_noua;
           ultim_parcurs = valoare_noua;
        }
        if(valoare_noua == ultim_parcurs) {
            suma_ultim = suma_ultim + ultim_parcurs;
        }
        if(valoare_noua > ultim_parcurs) {
            val_final = val_final - suma_ultim;
            suma_ultim = valoare_noua;
            ultim_parcurs = valoare_noua;
        }
    }    
}
